// utils/request.js
// 网络请求封装（后续接入后端API时使用）

// 后端API地址，根据实际情况修改
// 开发环境可以使用本地地址，生产环境使用服务器地址
const BASE_URL = 'http://localhost:8002' // 本地开发地址，生产环境改为实际服务器地址
// const BASE_URL = 'http://49.232.48.2:8002' // 服务器地址示例

function request(url, options = {}) {
  return new Promise((resolve, reject) => {
    const token = wx.getStorageSync('token')
    
    wx.request({
      url: BASE_URL + url,
      method: options.method || 'GET',
      data: options.data || {},
      header: {
        'Content-Type': 'application/json',
        'Authorization': token ? `Bearer ${token}` : '',
        ...options.header
      },
      success: (res) => {
        if (res.statusCode === 200) {
          resolve(res.data)
        } else if (res.statusCode === 401) {
          // 未授权，跳转登录
          wx.reLaunch({
            url: '/pages/login/login'
          })
          reject(new Error('未授权'))
        } else {
          reject(new Error(res.data.message || '请求失败'))
        }
      },
      fail: (err) => {
        reject(err)
      }
    })
  })
}

// GET请求
export function get(url, data) {
  return request(url, { method: 'GET', data })
}

// POST请求
export function post(url, data) {
  return request(url, { method: 'POST', data })
}

// PUT请求
export function put(url, data) {
  return request(url, { method: 'PUT', data })
}

// DELETE请求
export function del(url, data) {
  return request(url, { method: 'DELETE', data })
}

export default request
